package dao

import (
	"time"
)

// 这是 UmsPermission 的全局公开dao对象，被service层调用!
var UmsPermissionDao = umsPermissionDao{}

// 这是 ums_permission表 的实体类
type UmsPermission struct {
	CreateTime time.Time `json:"create_time" form:"create_time" v:"create_time"` // 创建时间
	Icon       string    `json:"icon" form:"icon" v:"icon"`                      // 图标
	Id         int64     `json:"id" form:"id" v:"id"`
	Name       string    `json:"name" form:"name" v:"name"`       // 名称
	Pid        int64     `json:"pid" form:"pid" v:"pid"`          // 父级权限id，这是一个外键，关联另外一张ums_permission表(即:父表)
	Sort       int32     `json:"sort" form:"sort" v:"sort"`       // 排序
	Status     int32     `json:"status" form:"status" v:"status"` // 启用状态；0-&gt;禁用；1-&gt;启用
	Types      int32     `json:"types" form:"types" v:"types"`    // 权限类型：0-&gt;目录；1-&gt;菜单；2-&gt;按钮（接口绑定权限）
	Uri        string    `json:"uri" form:"uri" v:"uri"`          // 前端资源路径
	Value      string    `json:"value" form:"value" v:"value"`    // 权限值

}

// 注意:这是 UmsPermission 的私有dao对象，只能在dao层内使用!
type umsPermissionDao struct {
	InsertTemplate func(arg UmsPermission) (int64, error)                               //插入一条记录
	UpdateTemplate func(arg UmsPermission) (int64, error)                               //更新一条记录
	DeleteTemplate func(id int64) (int64, error)                                        `args:"id"`                         //根据传入的主键删除一条记录
	SelectTemplate func(id int64) (UmsPermission, error)                                `args:"id"`                         //根据传入的主键获取一条记录
	List           func(keyword string, pageNum, pageSize int) ([]UmsPermission, error) `args:"keyword,page_num,page_size"` //模糊分页查询
}

/*
// 这是 ums_permission 表的Postman测试参数
// 该结构体中的字段就是: 前后端交互的json字段!
type UmsPermissionPostman struct {
create_time
icon
id
name
pid
sort
status
types
uri
value

}*/

// 这是 ums_permission 表的批量请求参数
type UmsPermissionReq struct {
	List []UmsPermission `json:"list" form:"list"`
}
